#define DEFAULT_POKEMON_CENTER_COORDS .x = 7, .y = 4

static const struct HealLocation sHealLocationsPokemonCenter[NUM_HEAL_LOCATIONS - 1] =
{
    [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F),
        .mapNum = MAP_NUM(MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F),
        .x = 2,
        .y = 7,
    },
    [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F),
        .mapNum = MAP_NUM(MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F),
        .x = 8,
        .y = 7,
    },
    [HEAL_LOCATION_PETALBURG_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_PETALBURG_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_PETALBURG_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_SLATEPORT_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_SLATEPORT_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_SLATEPORT_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_MAUVILLE_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_MAUVILLE_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_MAUVILLE_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_RUSTBORO_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_RUSTBORO_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_RUSTBORO_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_FORTREE_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_FORTREE_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_FORTREE_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_LILYCOVE_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_LILYCOVE_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_LILYCOVE_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_MOSSDEEP_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_SOOTOPOLIS_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_EVER_GRANDE_CITY - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F),
        .mapNum = MAP_NUM(MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F),
        .x = 2,
        .y = 7,
    },
    [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F),
        .mapNum = MAP_NUM(MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F),
        .x = 8,
        .y = 7,
    },
    [HEAL_LOCATION_OLDALE_TOWN - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_OLDALE_TOWN_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_OLDALE_TOWN_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_DEWFORD_TOWN - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_DEWFORD_TOWN_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_DEWFORD_TOWN_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_LAVARIDGE_TOWN - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_FALLARBOR_TOWN - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_VERDANTURF_TOWN - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_PACIFIDLOG_TOWN - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
    [HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F),
        .mapNum = MAP_NUM(MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F),
        .x = 3,
        .y = 4,
    },
    [HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_SOUTHERN_ISLAND_EXTERIOR),
        .mapNum = MAP_NUM(MAP_SOUTHERN_ISLAND_EXTERIOR),
        .x = 15,
        .y = 20,
    },
    [HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST - 1] =
    {
        .mapGroup = MAP_GROUP(MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F),
        .mapNum = MAP_NUM(MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F),
        DEFAULT_POKEMON_CENTER_COORDS,
    },
};

#undef DEFAULT_POKEMON_CENTER_COORDS

// localIds can be found in the generated events.inc file for the specific heal location map
// e.g. for OldaleTown_PokemonCenter1F/events.inc the following entry gets generated:
// object_event 1, OBJ_EVENT_GFX_NURSE, 7, 2, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, TRAINER_TYPE_NONE, 0, OldaleTown_PokemonCenter_1F_EventScript_Nurse, 0
// In this case the localId is 1.
static const u8 sHealNpcLocalId[NUM_HEAL_LOCATIONS - 1] =
{
    [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F - 1] = 1,
    [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F - 1] = 1,
    [HEAL_LOCATION_PETALBURG_CITY - 1] = 1,
    [HEAL_LOCATION_SLATEPORT_CITY - 1] = 1,
    [HEAL_LOCATION_MAUVILLE_CITY - 1] = 1,
    [HEAL_LOCATION_RUSTBORO_CITY - 1] = 1,
    [HEAL_LOCATION_FORTREE_CITY - 1] = 1,
    [HEAL_LOCATION_LILYCOVE_CITY - 1] = 1,
    [HEAL_LOCATION_MOSSDEEP_CITY - 1] = 1,
    [HEAL_LOCATION_SOOTOPOLIS_CITY - 1] = 1,
    [HEAL_LOCATION_EVER_GRANDE_CITY - 1] = 1,
    [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE - 1] = 1,
    [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE - 1] = 1,
    [HEAL_LOCATION_OLDALE_TOWN - 1] = 1,
    [HEAL_LOCATION_DEWFORD_TOWN - 1] = 1,
    [HEAL_LOCATION_LAVARIDGE_TOWN - 1] = 1,
    [HEAL_LOCATION_FALLARBOR_TOWN - 1] = 1,
    [HEAL_LOCATION_VERDANTURF_TOWN - 1] = 1,
    [HEAL_LOCATION_PACIFIDLOG_TOWN - 1] = 1,
    [HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE - 1] = 1,
    [HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR - 1] = 0, // no heal npc
    [HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST - 1] = 1,
};
